const obj = {
  name: 'zhangsan',
};

const p = new Proxy(obj, {
  /**
   *
   * @param {*} target 源对象
   * @param {*} prop 监听的属性名
   * @returns 必须返回一个object(属性描述符)或者undefind
   */
  getOwnPropertyDescriptor: (target, prop) => {
    console.log(target, prop);
    return {
      ...Object.getOwnPropertyDescriptor(target, prop),
      value: 'lisi',
    };
  },
});

console.log(Object.getOwnPropertyDescriptor(p, 'name')); // 可以被拦截
